package com.kinyx.framework.reflect;

import org.junit.Test;

public class KBeanUtils_Tester_copyProperties4 extends KBeanUtils_Tester_copyProperties_SUPER {

	@Test
	public void A_A_null() {
		final A from = new A();
		this.checkNull(from);

		final A to = new A();
		KBeanUtils.copyProperties(from, to);
		this.checkNull(to);
	}

	@Test
	public void A_B_null() {
		final A from = new A();
		this.checkNull(from);

		final B to = new B();
		KBeanUtils.copyProperties(from, to);
		this.checkNull(to);
	}

	@Test
	public void B_B_null() {
		final B from = new B();
		this.checkNull(from);

		final B to = new B();
		KBeanUtils.copyProperties(from, to);
		this.checkNull(to);
	}

	@Test
	public void B_A_null() {
		final B from = new B();
		this.checkNull(from);

		final A to = new A();
		KBeanUtils.copyProperties(from, to);
		this.checkNull(to);
	}

	@Test
	public void A_A() {
		final A from = new A();
		this.init(from);
		this.check(from);

		final A to = new A();
		KBeanUtils.copyProperties(from, to);
		this.check(to);
	}

	@Test
	public void A_B() {
		final A from = new A();
		this.init(from);
		this.check(from);

		final B to = new B();
		KBeanUtils.copyProperties(from, to);
		this.check(to);
	}

	@Test
	public void B_B() {
		final B from = new B();
		this.init(from);
		this.check(from);

		final B to = new B();
		KBeanUtils.copyProperties(from, to);
		this.check(to);
	}

	@Test
	public void B_A() {
		final B from = new B();
		this.init(from);
		this.check(from);

		final A to = new A();
		KBeanUtils.copyProperties(from, to);
		this.check(to);
	}

}
